package com.project.server.service.visitorRecord;




import com.project.server.domain.visitorRecord.TVisitorRecord;

import java.util.List;

/**
 *  访客记录信息 业务层
 *
 * @author admin
 */
public interface ITVisitorRecordService {

    /**
     * 根据条件分页查询访客记录信息
     *
     * @param visitorRecord 访客记录信息
     * @return 访客记录信息集合信息
     */
    List<TVisitorRecord> selectVisitorRecordList(TVisitorRecord visitorRecord);

    /**
     * 根据访客id查询访客记录
     *
     * param visitId 访客id
     * @return  访客记录
     */
    TVisitorRecord selectVisitorRecordByVisitId(Long visitId);

    /**
     * 根据电话号码查询访客信息
     *
     * @param visitPhone 访客电话
     * @return 访客对象信息
     */
    TVisitorRecord selectVisitorRecordByVisitPhone(String visitPhone);

    /**
     *根据接待人id查询访客信息
     *
     *  @param userId 接待人id
     * @return 访客对象信息
     */
    TVisitorRecord selectVisitorRecordByUserId(Long userId);

    /**
     * 根据审批人查询访客信息
     *
     * @param approverId 审批人id
     * @return 访客对象信息
     */
    TVisitorRecord selectVisitorRecordByApproverId(Long approverId);

    /**
     * 查询待审批访客记录
     *
     * @param visitorRecord 访客信息
     * @return 访客信息集合
     */
    List<TVisitorRecord> selectVisitorRecordByApproverState(TVisitorRecord visitorRecord);

    /**
     * 根据openId查询该用户的访问信息
     *
     * @param visitorRecord 访客信息
     * @return 访客审批记录
     */
    List<TVisitorRecord> selectVisitorRecordByOpenId(TVisitorRecord visitorRecord);

    /**
     * 新增访客记录
     *
     * @param visitorRecord 访客信息
     * @return 结果
     */
    int insertVisitorRecord(TVisitorRecord visitorRecord);

    /**
     *修改访客记录
     *
     *  @param visitorRecord 访客信息
     * @return 结果
     */
    int updateVisitorRecord(TVisitorRecord visitorRecord);

    /**
     * 修改审批状态
     *
     * @param visitorRecord 访客信息
     * @return 结果
     */
    int updateVisitorRecordApproverState(TVisitorRecord visitorRecord);

    /**
     * 通过访客id删除访客记录信息
     *
     * @param visitId 访客id
     * @return 结果
     */
    int deleteVisitorRecordByVisitId(Long visitId);

    /**
     * 批量删除访客记录
     *
     * @param visitIds 需要删除的访客id
     * @return 结果
     */
    int deleteVisitorRecordByVisitIds(Long[] visitIds);


}
